﻿using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Rocuna.Controls.Interfaces;

namespace Rocuna.Controls
{
    /// <summary>
    /// Base abstract class to Rocuna xna controls.
    /// </summary>
    public abstract class Control : DrawableGameComponent
    {

        #region Properties

        /// <summary>
        /// Initializes a new instance of the <see cref="Control"/> class.
        /// </summary>
        /// <param name="game">The Game that the game component should be attached to.</param>
        protected Control(Game game)
            : base(game)
        {
            IsEnabled = true;
            Background = Color.White;

        }

        /// <summary>
        /// Gets or sets a value indicating whether this instance is enabled.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance is enabled; otherwise, <c>false</c>.
        /// </value>
        public bool IsEnabled { get; set; }

        /// <summary>
        /// Gets or sets the background color.
        /// </summary>
        /// <value>
        /// The background color.
        /// </value>
        public Color Background { get; set; }

        /// <summary>
        /// Gets or sets the content.
        /// </summary>
        /// <value>
        /// The content.
        /// </value>
        public Texture2D Foreground { get; set; }

        /// <summary>
        /// Gets or sets the border.
        /// </summary>
        /// <value>
        /// The border.
        /// </value>
        public ISurface Border { get; set; }

        #endregion

        #region Methods

        /// <summary>
        /// Draws the specified control.
        /// </summary>
        /// <param name="gameTime">The game time.</param>
        public override void Draw(GameTime gameTime)
        {

        }

        #endregion
    }
}